package activeQM;

import java.awt.Image;

import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.swing.ImageIcon;

import org.apache.activemq.command.ActiveMQObjectMessage;

import utilidades.ZipUtility;
import vistas.FormEscritorioCompartido;

public class ClienteQMTopicoPantallaCompartida implements MessageListener {

	private FormEscritorioCompartido escritorio;
	private Boolean compartirPantalla = false;

	public ClienteQMTopicoPantallaCompartida() {
		super();
	}

	/**
	 * @param compartirPantalla the compartirPantalla to set
	 */
	public void setCompartirPantalla(Boolean compartirPantalla) {
		this.compartirPantalla = compartirPantalla;
	}

	/**
	 * @param escritorio the escritorio to set
	 */
	public void setEscritorio(FormEscritorioCompartido escritorio) {
		this.escritorio = escritorio;
	}

	public FormEscritorioCompartido getEscritorio() {
		return escritorio;
	}
	@Override
	public void onMessage(Message m) {
		if(!compartirPantalla){
			ActiveMQObjectMessage om = (ActiveMQObjectMessage) m;
			try {
				byte[] receivedObject = (byte[]) om.getObject();
				ImageIcon tmp = new ImageIcon(ZipUtility.decompress(receivedObject));
				ImageIcon tmp2 = new ImageIcon(tmp.getImage().getScaledInstance(escritorio.getWidth(), escritorio.getHeight(), Image.SCALE_DEFAULT));
				escritorio.actualizarImagen(tmp2);
			} catch (JMSException e) {
				throw new RuntimeException(
						"An exception occured while trying to get a JMS object:"
								+ e.getMessage(), e);
			}
		}
	}
}
